﻿Imports SistemaINCA.Security
Imports SistemaINCA.Models.ViewModels

Namespace Models

    Public Interface IGradosProfesorMateria
        '<Authorize(Roles:="ERA")> _
        'Function AddAsociacionMatPrfGrd(IDGrado As Integer, IDMateria As Integer, IDProfesor As String, ByRef msgError As String) As Boolean

        '<Authorize(Roles:="ERA")> _
        'Function GetTablaAsociaciones(IDGroup As Integer, Año As String) As List(Of GET_TBL_ASIGNACIONES_GPM_BYANIO_GG_DATATYPE)
    End Interface

    Partial Public Class SchoolClickDB_Repositorio
        Implements IGradosProfesorMateria

        Public ReadOnly Property IGradosProfesorMateria() As IGradosProfesorMateria
            Get
                Return DirectCast(Me, IGradosProfesorMateria)
            End Get
        End Property

        'Private Function AddAsociacionMatPrfGrd(IDGrado As Integer, IDMateria As Integer, IDProfesor As String, ByRef msgError As String) As Boolean Implements IGradosProfesorMateria.AddAsociacionMatPrfGrd
        '    Dim eCompleted As Boolean = False
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Dim bResult = cnn.INS_ASOCIAR_MATE_PROF_GRADO(IDProfesor, IDGrado, IDMateria, _
        '                                                   EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).Single
        '            If bResult Then
        '                eCompleted = True
        '            Else
        '                msgError = "No se pudo asociar el profesor a la materia en el grado especificado"
        '            End If
        '        Catch ex As EntityCommandExecutionException
        '            msgError = ex.InnerException.Message
        '        Catch ex As Exception
        '            'OPTIONAL: Si existiera un error durante toda la operacion, unicamente la interceptamos y la ignoramos.
        '            'Solo tomaremos el mensaje del error y lo regresaremos en la variable delo mensaje de error
        '            msgError = FormatErrorMessage("Ocurrio un problema al intentar realizar la operación.", ex.Message)
        '        End Try
        '    End Using
        '    Return eCompleted
        'End Function

        'Private Function GetTablaAsociaciones(IDGroup As Integer, Año As String) As System.Collections.Generic.List(Of GET_TBL_ASIGNACIONES_GPM_BYANIO_GG_DATATYPE) Implements IGradosProfesorMateria.GetTablaAsociaciones
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Return cnn.GET_TBL_ASIGNACIONES_GPM_BYANIO_GG(IDGroup, Año, _
        '                    EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).ToList
        '        Catch ex As Exception
        '            Throw New ApplicationException(String.Format("Lo sentimos, No se pudo obtener las asociaciones de Profesor-Materia. {0}", ex.Message))
        '        End Try
        '    End Using
        'End Function
    End Class
End Namespace
